// eslint.config.js
import js from '@eslint/js'
import vuePlugin from 'eslint-plugin-vue'
import tsParser from '@typescript-eslint/parser'
import tsPlugin from '@typescript-eslint/eslint-plugin'
import vueParser from 'vue-eslint-parser'
import globals from 'globals'
import prettier from 'eslint-plugin-prettier'

export default [
  js.configs.recommended,

  {
    files: ['**/*.vue'],
    languageOptions: {
      parser: vueParser,
      parserOptions: {
        parser: tsParser,
        ecmaVersion: 'latest',
        sourceType: 'module'
      },
      globals: {
        ...globals.browser,
        ...globals.node
      }
    },
    plugins: {
      vue: vuePlugin,
      '@typescript-eslint': tsPlugin, // ✅ 插件加上
      prettier // ✅ 使用 prettier 插件
    },
    rules: {
      'vue/multi-word-component-names': ['warn', { ignores: ['index'] }],
      'vue/no-setup-props-destructure': 'off',

      'no-unused-vars': 'off', // 关闭原生规则
      '@typescript-eslint/no-unused-vars': [
        'warn',
        {
          argsIgnorePattern: '^_',
          varsIgnorePattern: '^_|^GlobalComponents$'
        }
      ],

      // ✅ 添加 prettier 规则
      'prettier/prettier': 'error', // 启用 Prettier 格式化
    }
  },

  {
    files: ['**/*.ts'],
    languageOptions: {
      parser: tsParser
    },
    plugins: {
      '@typescript-eslint': tsPlugin, // ✅ typescript 文件也要加 plugin
      prettier // ✅ 使用 prettier 插件
    },
    rules: {
      'prettier/prettier': 'error', // 启用 Prettier 格式化
    }
  }
]
